Emulator software programs allow an application for use in one platform to be used on a machine running another platform. This allows computing systems (a host machine) to run applications for more than one platform. A host machine implements a host environment (or host platform). The host environment is associated with the operating system of a computing system. An emulator application running in the host environment emulates a guest platform. Usually, processing is performed in one platform at a time. For example, applications may be run in either a host or guest environment, but not both environments at the same time.
Emulators sometimes require a switch to be made between environments. For example, when code compatible with a guest environment is to be compiled into host compatible code, the host environment compiles the code. To compile code for a guest environment compatible application, the guest application code is read. Next, the guest environment is paused or otherwise deactivated, and the host environment is then activated. Code for execution in the host environment is then compiled from the guest application code by the host machine. The host environment is then deactivated, the guest environment is reactivated and the compiled instructions are eventually executed. After execution, the compiled code is eventually overwritten.
Switching between a host environment and guest environment consumes time and processing resources. Typically, switches between environments are required for code compiling because the compiling must be performed by the host machine. This results in slower performance of emulator software programs running an application configured for a guest environment.